"1.21.1 (9.3.0)"
data/tcg/tcg/card/
for examples.pixelmon:raid_boss
context to the defeat raid boss interaction event.pixelmon/pixelmon/raid/ally
- controls the NPC allies that can appear with you in a raid.pixelmon/pixelmon/raid/spawn
- controls the spawning of raid Pokemon./pokeheal
and /poketest
now use Brigadier, enabling full player selector compatibility./setraid
command has been updated.raiddrops.json
datapack file removed.raids.json
datapack file removed.PixelmonStatisticsRegistry
and a TCGStatisticsRegistry
that adds values/registry entries that keep track of action the player makes.
PixelmonStatisticsPixelmonListener
, PixelmonStatisticsMinecraftListener
, TCGStatisticsTCGListener
, and TCGStatisticsMinecraftListener.
AttackEvent.DamageDealt
- Includes info on the amount of damage dealt to a Pokemon. AttackEvent.Damage
is info on the potential damage that was calculated.PokedexOpenedEvent
- Called when the player opens their PokedexServerPokedexPacket
.ShearInteractionEvent
:ShearInteractionEvent(AbstractBaseEntity pixelmon, Player player, InteractionHand hand, ItemStack itemStack)
ShearInteraction
WildPixelmonAttackEvent
- An event that happens when a Wild Pixelmon is the one to initiate a battle with a player:WildPixelmonAttackEvent(Player player, PlayerParticipant playerParticipant, Pokemon playersFirstPokemon, Mob wildPixelmonEntity, BattleParticipant wildPixelmonParticipant)
ExecuteActionGoal#attackPlayer
.CaughtTransformedDittoEvent
- Used when a PixelmonEntity is caught and the game successfully rolls to decide that the Pokemon was actually a Ditto.CaughtTransformedDittoEvent(Player player, PixelmonEntity previousPixelmon, PixelmonEntity ditto, EmptyPokeBallEntity emptyPokeBallEntity, boolean transformToDitto, boolean isMeltan)
EggMovesetEvent
- An event that occurs after the moves for an egg have been chosen, but before they are actually assigned to the Pokémon's moveset.EggMovesetEvent(Player player, Pokemon motherPokemon, Pokemon fatherPokemon, List motherEggMoves, List fatherEggMoves, List fathersTMHMTutorMoves, List levelupMoves, List lvl1Moves, List masterAttackList)
MirrorHerbEggMoveEvent
- Used when a Pokemon learns an Egg move because their partner in the DayCare knew it.public MirrorHerbEggMoveEvent(Player player, Pokemon mirrorHerbPokemon, Pokemon partnerPokemon, int movesetIndex, Attack newAttack)
FriendshipChangedEvent
- Used right before a Pokemon's Friendship increases or decreases.FriendshipChangedEvent(Pokemon pokemon, int previousFriendshipAmount, int intendedFriendshipAmount)
RandomEggEvent
- An event that occurs when a random Pokemon is generated for an egg.RandomEggEvent(Pokemon parentOne, Pokemon parentTwo, Pokemon pokemonInEgg)
CardDrawnEvent
- Occurs when a player draws a card from their deck.CardDrawnEvent(GameServerState gameServerState, Player player, int numberOfCardsDrawn, List deck, List hand)
EnergyAttachedEvent
- Should fire whenever a player places an energy card on the active or a bench Pokemon during a TCG Battle.EnergyAttachedEvent(PlayerServerState player, PokemonCardState pokemonCardState, ImmutableCard card, CommonCardState cardState)
SynchronizeNatureEvent
- Occurs when a player's Pixelmon with the Synchronize ability makes a Wild Pixelmon's Nature get re-rolled.SynchronizeNatureEvent(PixelmonWrapper synchronizeUser, PixelmonWrapper synchronizeTarget, Nature nature)
WildPixelmonHeldItemRerolledEvent
- Fires when a Pixelmon Entity tries to re-roll a held item because a nearby player has a Pixelmon with Super Luck.WildPixelmonHeldItemRerolledEvent(ServerPlayer serverPlayer, PlayerPartyStorage party, ItemStack heldItem, SpawnAction spawnAction)
InfuserEvent
- An event meant to be used for the Infuser. Currently only the InfuserEvent.CreateItem Pre
and Post
events are used. They're fired before and after an Infuser will finish the creation of an item.HealTeamEvent
- Fires when the player's entire team would be healed, even if the player's team is already fully healed. Sleeping in a bed, using /pokeheal, and starting another battle with a player are 3 instances that aren't covered by the other event, HealerEvent
.HealTeamEvent(UUID playerUUID)
ExperienceEvent
that allows including information on the Pokemon giving the experience.ExperienceGainEvent(@Nullable BattleController controller, Pokemon pokemon, Pokemon faintedPokemon, int experience, ExperienceGainType type)
ExperienceEvent#getFaintedPokemon
ItemInteractionEvent
to have a Pre and Post event.PassivePoisonEvent
was refactored to be less redundant.EVsGainedEvent
:Item(Pokemon pokemon, EVStore evStore, EVYields evYields, ItemStack itemStack)
.InteractionPerilousSoup
.EVGainEvent
:faintedPokemon
class variable and EVGainEvent#getFaintedPokemon
.EVGainEvent(Pokemon pokemon, Pokemon faintedPokemon, EVYields originalEVYields, EVYields evYields)
to handle the new variable while deprecating the old one.DoubleYieldEvent
subclass and all the Pre and Post subclasses to match.FishingEvent.Reel
isItem()
and getItemStack()
CurryFInishedEvent
public CurryFinishedEvent(@Nullable ServerPlayer player, EnumCurryRating rating, EnumCurryKey curryKey, EnumBerryFlavor cookingFlavor)
in favor of public CurryFinishedEvent(@Nullable ServerPlayer player, int quality, EnumCurryRating rating, EnumCurryKey curryKey, EnumBerryFlavor cookingFlavor)
. Allows us to grab the quality (a.k.a score) of the curry for our stats.PokemonBase#isJumpPalette
, PokemonBase#isJumpPaletteForMagikarp
, PokemonBase#isJumpPaletteForSlugma
, PokemonBase#isJumpPaletteForSpheal
, PokemonBase#isJumpPaletteForShellos
, PokemonBase#isJumpPaletteForClobbopus
.PixelmonPalettes
:
BattleController#applyEndOfBattleEffectsAndRestoreItems
from code that was in BattleController#endBattle
.
Experience
to create a Experience#hasExpAll
from code that was in Experience#awardExp
.PlayerControlledMovement#updatePosition
for when #getCameraTarget
returned null.
@Nullable
identifier to getCameraTarget()
.BikeEntity
, overrode Entity#move(MoverType, Vec3)
so that we could run BikeEntity#awardStatsForRiding(Entity, Vec3)
.
AbstractMovesEntity
with AbstractMovesEntity#awardStatsForRidingPixelmon
.InteractionTechnicalMove
and InteractionTM
to create the private boolean isUnableToLearn(PixelmonEntity, Player, ItemStack, ImmutableAttack)
from code from the processInteract(PixelmonEntity, Player, InteractionHand, ItemStack)
.PixelmonBlockTags
for the data tags that already exist:
PokerusSpreader
to create new functions to make things more legible and to hopefully make this class more clear on how it works.
private static void spreadToParty(PlayerParticipant participant)
private static void forEachAttackVerifyIfAttackerCanReceivePokerus(BattleEndEvent event, List<UUID> winners)
private static void forEachSuccessfulAttackOnInfectedOpponentAttemptToSpreadPokerusToAttacker(AttackAction attackAction, Map<UUID, List<UUID>> analyzedMap, UUID receiverUUID)
private static void spread(PokerusStrain donorType, PixelmonWrapper wrapper, PlayerPartyStorage storage)
EVYields#getTotalCount
.
IncreaseEVItem#adjustEVs(PixelmonEntity, ItemStack)
always passing in 1 EV to the EVsGainedEvent
, even if Vitamins were used.DecreaseEVBerryItem#berryEVs(PixelmonEntity)
in favor of DecreaseEVBerryItem#berryEVs(PixelmonEntity, ItemStack)
.EVStore#getPerilousSoupEVYield
.EVStore#subtractEVsOfType(BattleStatsType, int, int)
and replaced the logic in EVStore#berryEVs(BattleStatsType)
with that.EVStore#gainEVYields(EVYields)
which returns an EVYields of the EVs that were actually applied to the Pokemon (in case of the Pokemon having or almost having the max amount of EVs overall or for one stat). This overloads the other gainEVYields function. The calculation of which EVs are actually applied is done by the new EVStore#calculateEVYieldsWithinMaximumLimits(EVYields)
.
ExecuteActionGoal
:ExecuteActionGoal#tick
now is mostly split into ExecuteActionGoal#moveSkill(LivingEntity)
, ExecuteActionGoal#attackPlayer(LivingEntity)
, ExecuteActionGoal#attackPixelmonEntity(LivingEntity)
.Pokemon#isParadox
and FormTags#isParadox
for the new PARADOX
tag in Tags
.Lcom/pixelmonmod/pixelmon/api/pokemon/PokemonBuilder;build(Ljava/util/function/Supplier;)Lcom/pixelmonmod/pixelmon/api/pokemon/Pokemon;
PixelmonWrapper#writeChangesToOriginalPokemon
that is called every move to record persistent changes to the original Pokemon's data.PokemonLink
, DelegateLink
, and WrapperLink
.HeldItem#postProcessDamagingAttackSubstitute
.deprecated
.HeldItem#preventsEffectsOfWeather
.HeldItem#onItemLost
.HeldItem#cantMiss
now takes a 2nd PixelmonWrapper
parameter."1.20.2 (Alpha 10)"
size
Pokémon spec.growth_data
in forms.crafted_gingko_blocks
to crafted_ginkgo_blocks
tag.chest_boats
tag.mineable/axe
tag so they can be mined faster with axes.PokemonStorage#forEach
method, and implementations for each kind of storage."There are DOZENS of us, DOZENS!"
/setraid
command